package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/** 集合的排序-----String */
public class SortString {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("王大锤");
        list.add("狗蛋");
        list.add("李二牛的牛");
        System.out.println("list原始数据:"+list);//原始数据:[王大锤, 狗蛋, 李二牛的牛]

        Collections.sort(list);//按首字符的ASCII码排序
        System.out.println("list排序后:"+list);//list排序后:[李二牛的牛, 狗蛋, 王大锤]

        //自定义排序
        Collections.sort(list, new Comparator<String>() {
            //自定义按字符长度排序
            /*
                自定义排序规则:
                    1.前面的-后面的----------升序
                    2.后面的-前面的----------降序
             */
            public int compare(String o1, String o2) {
                return o1.length()-o2.length();//升序  //list原始数据:[王大锤, 狗蛋, 李二牛的牛]
                //return o2.length()-o1.length();//降序  //list排序后:[李二牛的牛, 狗蛋, 王大锤]
            }
        });

        Collections.sort(list,(o1,o2)->o1.length()-o2.length());





        /*
        List<String> list = new ArrayList<>();
        list.add("jack");
        list.add("rose");
        list.add("tom");
        list.add("jerry");
        list.add("black");
        list.add("Kobe");
        System.out.println("list原始数据:"+list);//list原始数据:[jack, rose, tom, jerry, black, Kobe]

        //对英文排序是通过首字母的ASCII码来排序
        //若首字母相同,则比较第2个字母的ASCII码来排序
        Collections.sort(list);
        System.out.println("list排序后的数据"+list);//list排序后的数据[Kobe, black, jack, jerry, rose, tom]

         */


























    }
}
